package com.girant.entity;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

@Data
@Document(indexName = "probation-indext_base_material_v5")  // 关联最新索引
public class Material {
    @Id
    private String id;  // ES文档ID

    private float score;  // 搜索分数（非存储字段，仅用于返回结果）

    // 物料大类（主字段：中文分词，索引自动维护 keyword 和 pinyin 子字段）
    @Field(type = FieldType.Text, analyzer = "ik_analyzer")
    private String materialType;

    // 物料名称（主字段：中文分词，索引自动维护 keyword 和 pinyin 子字段）
    @Field(type = FieldType.Text, analyzer = "ik_analyzer")
    private String materialName;

    // 物料别名（主字段：中文分词，索引自动维护 keyword 和 pinyin 子字段）
    @Field(type = FieldType.Text, analyzer = "ik_analyzer")
    private String materialAlias;

    // 物料属性（无需分词，直接用Keyword）
    @Field(type = FieldType.Keyword)
    private String materialAttribute;

    // 物料细类（主字段：中文分词，索引自动维护 keyword 和 pinyin 子字段）
    @Field(type = FieldType.Text, analyzer = "ik_analyzer")
    private String materialCategory;

    // 物料编码（主字段：标准分词，索引自动维护 keyword 子字段）
    @Field(type = FieldType.Text, analyzer = "standard")
    private String materialCode;

    // 物料规格（主字段：中文分词，索引自动维护 keyword 和 pinyin 子字段）
    @Field(type = FieldType.Text, analyzer = "ik_analyzer")
    private String materialSpecs;

    // 基本单位（无需分词，直接用Keyword）
    @Field(type = FieldType.Keyword)
    private String baseUnit;
}
